#nullable enable

namespace PHMEE;

public static class PHMEEEnergyEfficiencyErrorCodes
{
    public const string TargetCIIGradeCannotBeE = "CBM:TargetCIIGradeCannotBeE";
    public const string CapacityIsZero = "CBM:CapacityIsZero";
    public const string StartTimeGreaterThanEndTime = "CBM:StartTimeGreaterThanEndTime";
    public const string StartDateMustBeBeforeEndDate = "CBM:StartDateMustBeBeforeEndDate";
    public const string StartDateMustBeBeforeOrEqualEndDate = "CBM:StartDateMustBeBeforeOrEqualEndDate";
    public const string EndDateMustBeBeforeToday = "CBM:EndDateMustBeBeforeToday";
    public const string EndDateMustBeBeforeOrEqualToday = "CBM:EndDateMustBeBeforeOrEqualToday";
    public const string DateMustBeBeforeToday = "CBM:DateMustBeBeforeToday";
    public const string StartTimeMustBeBeforeEndTime = "CBM:StartTimeMustBeBeforeEndTime";
    public const string HourMustBeBeforeThisHour = "CBM:HourMustBeBeforeThisHour";
    public const string YearMustBeBeforeCurrentYear  = "CBM:YearMustBeBeforeCurrentYear";
    public const string YearMustBeBeforeOrEqualCurrentYear  = "CBM:YearMustBeBeforeOrEqualCurrentYear";
    public const string YearMustBeBeforeNow  = "CBM:YearMustBeBeforeNow";
    public const string TimeMustBeBeforeNow  = "CBM:TimeMustBeBeforeNow";
    public const string TimeMustBeBeforeOrEqualNow  = "CBM:TimeMustBeBeforeOrEqualNow";
    public const string SubVoyageNotFound  = "CBM:SubVoyageNotFound";
    public const string CurrentSubVoyageNotFound  = "CBM:CurrentSubVoyageNotFound";
    public const string VoyageNotFound  = "CBM:VoyageNotFound";
    public const string VesselAnnualConfigNotFound  = "CBM:VesselAnnualConfigNotFound";
    public const string VesselAnnualConfigDuplicated = "CBM:VesselAnnualConfigDuplicated";
    public const string CIIReductionFactorNotFound = "CBM:CIIReductionFactorNotFound";
    public const string VesselConfigNotFound  = "CBM:VesselConfigNotFound";
    public const string VesselConfigDuplicated  = "CBM:VesselConfigDuplicated";
    public const string VesselCIIConfigNotFound  = "CBM:VesselCIIConfigNotFound";
    public const string VesselCIIConfigDuplicated  = "CBM:VesselCIIConfigDuplicated";
    public const string UnfinishedVoyageExists  = "CBM:UnfinishedVoyageExists";
    public const string VoyageTimeRangeProblem  = "CBM:VoyageTimeRangeProblem";
    public const string ActualCargoCapacityNotFoundAtTime = "CBM:ActualCargoCapacityNotFoundAtTime";
    public const string OverlappingTimeRange = "CBM:OverlappingTimeRange";
    public const string MissingActualCargoCapacityForSubVoyages = "CBM:MissingActualCargoCapacityForSubVoyages";
    public const string EngineTrialFuelDuplicated = "CBM:EngineTrialFuelDuplicated";
    public const string NoDataInSelectedTimeRange = "CBM:NoDataInSelectedTimeRange";
    public const string VesselNotRunning = "CBM:VesselNotRunning";
    public const string ValueMustBeGreaterThanZero = "CBM:ValueMustBeGreaterThanZero";
    public const string NoDistanceInSelectedTimeRange = "CBM:NoDistanceInSelectedTimeRange";
    public const string MissingActualCargoCapacityForSomeDays = "CBM:MissingActualCargoCapacityForSomeDays";
    public const string StartDateAndEndDateMustInTheSameYear = "CBM:StartDateAndEndDateMustInTheSameYear";
    public const string FuelTypeConfigDuplicated = "CBM:FuelTypeConfigDuplicated";
    
    // 船舶未配置流量计安装模式
    public const string FlowMeterModeNotConfigured = "CBM:FlowMeterModeNotConfigured";
    
    // CBM 用户填报的报表 Dto 校验
    public const string InvalidFuelType = "CBM:InvalidFuelType";
    public const string InvalidLatitude = "CBM:InvalidLatitude";
    public const string InvalidLongitude = "CBM:InvalidLongitude";
    public const string InvalidLogAbstractEventType = "CBM:InvalidLogAbstractEventType";
    
    // CBM 同一时间戳的报告已经存在
    public const string ReportAlreadyExistsAtThisTs = "CBM:ReportAlreadyExistsAtThisTs";
    // CBM LogAbstract 不存在
    public const string LogAbstractNotFound = "CBM:LogAbstractNotFound";
    // 不允许修改 7 天前的报告
    public const string CannotModifyReportBeforeSevenDays = "CBM:CannotModifyReportBeforeSevenDays";
    // 无法为比最新日志日期更早的日期录入数据。请确认日期，并确保按照时间顺序录入数据
    public const string EarlierDateEntryNotAllowed = "CBM:EarlierDateEntryNotAllowed";
    // 存在未录入的日期。自最后一次录入以来每一天都需要录入数据，请依次补录缺失的日期。
    public const string SequentialDateEntryRequired = "CBM:SequentialDateEntryRequired";
    // 为保持 LogAbstract 数据的时间连续性，只允许删除最新的日志条目
    public const string DeleteOnlyMostRecentLogAbstract = "CBM:DeleteOnlyMostRecentLogAbstract";
    
    // CBM 草稿不存在
    public const string DraftNotFound = "CBM:DraftNotFound";
    
    // 没有发现该年的 CII 折减因数配置。
    public const string CIIReductionFactorNotFoundWithoutYearNumber = "CBM:CIIReductionFactorNotFoundWithoutYearNumber";
    // 无法计算已航行天数的平均 CII。
    public const string CannotCalculateAverageCIIWithSailingDays = "CBM:CannotCalculateAverageCIIWithSailingDays";
    // 无法计算剩余年度要达到的 CII。
    public const string CannotCalculateRemainingCII = "CBM:CannotCalculateRemainingCII";
    // 无法提供有效的建议航速。
    public const string CannotProvideValidSpeedAdvice = "CBM:CannotProvideValidSpeedAdvice";
    // 无法提供有效的预估 CII。
    public const string CannotProvideValidEstimatedCII = "CBM:CannotProvideValidEstimatedCII";

    #region Ams

    // Ams 标签名称（Tag Name）和标签描述（Tag Description）不能同时为空。
    public const string TagNameAndDescriptionCannotBeBothEmpty = "Ams:TagNameAndDescriptionCannotBeBothEmpty";
    // 标签描述不能为空
    public const string TagDescriptionCannotBeEmpty = "Ams:TagDescriptionCannotBeEmpty";

    #endregion Ams
}